.TH KILLALL 1 2009-12-18 "Linux" "User Commands"
.SH NAME
killall \- kill processes by name
.SH SYNOPSIS
.ad l
.B killall
.RB [ \-Z , \-\-context 
.IR pattern ]
.RB [ \-e , \-\-exact ]
.RB [ \-g , \-\-process\-group ]
.RB [ \-i , \-\-interactive ]
.RB [ \-o , \-\-older\-than
.IR TIME ]
.RB [ \-q , \-\-quiet ]
.RB [ \-r , \-\-regexp ]
.RB [ \-s , \-\-signal
.IR signal ]
.RB [ \-u , \-\-user 
.IR user ]
.RB [ \-v , \-\-verbose ]
.RB [ \-w , \-\-wait ]
.RB [ \-y , \-\-younger\-than
.IR TIME ]
.RB [ \-I , \-\-ignore-case ]
.RB [ \-V, \-\-version ]
.RB [ \-\- ]
.I name ...
.br
.B killall
.RB \-l
.br
.B killall
.RB \-V, \-\-version
.ad b
.SH DESCRIPTION
.B killall
sends a signal to all processes running any of the specified commands. If no
signal name is specified, SIGTERM is sent.
.PP
Signals can be specified either by name (e.g. \fB\-HUP\fP or \fB-SIGHUP\fP )
or by number (e.g. \fB\-1\fP) or by option \fB-s\fP.
.PP
If the command name is not regular expression (option \fB-r\fP)
and contains a slash (\fB/\fP), processes executing that
particular file will be selected for killing, independent of their name.
.PP
\fBkillall\fP returns a zero return code if at least one process has been
killed for each listed command, or no commands were listed and at least
one process matched the -u and -Z search criteria. \fBkillall\fP returns
non-zero otherwise.
.PP
A \fBkillall\fP process never kills itself (but may kill other \fBkillall\fP
processes).
.SH OPTIONS
.IP "\fB\-e\fP, \fB\-\-exact\fP"
Require an exact match for very long names. If a command name is longer
than 15 characters, the full name may be unavailable (i.e. it is swapped
out). In this case, \fBkillall\fP will kill everything that matches within
the first 15 characters. With \fB\-e\fP, such entries are skipped.
\fBkillall\fP prints a message for each skipped entry
if \fB\-v\fP is specified in addition to \fB\-e\fP,
.IP "\fB\-I\fP, \fB\-\-ignore\-case\fP"
Do case insensitive process name match.
.IP "\fB\-g\fP, \fB\-\-process\-group\fP"
Kill the process group to which the process belongs. The kill signal is only
sent once per group, even if multiple processes belonging to the same process
group were found.
.IP "\fB\-i\fP, \fB\-\-interactive\fP"
Interactively ask for confirmation before killing.
.IP "\fB\-l\fP, \fB\-\-list\fP"
List all known signal names.
.IP "\fB\-o\fP, \fB\-\-older\-than\fP"
Match only processes that are older (started before) the time specified.
The time is specified as a float then a unit. The units are s,m,h,d,w,M,y for
seconds, minutes, hours, days, weeks, Months and years respectively.
.IP "\fB\-q\fP, \fB\-\-quiet\fP"
Do not complain if no processes were killed.
.IP "\fB\-r\fP, \fB\-\-regexp\fP"
Interpret process name pattern as an extended regular expression.
.IP "\fB\-s\fP, \fB\-\-signal\fP"
Send this signal instead of SIGTERM.
.IP "\fB\-u\fP, \fB\-\-user\fP"
Kill only processes the specified user owns. Command names are optional.
.IP "\fB\-v\fP, \fB\-\-verbose\fP"
Report if the signal was successfully sent.
.IP "\fB\-V\fP, \fB\-\-version\fP"
Display version information.
.IP "\fB\-w\fP, \fB\-\-wait\fP"
Wait for all killed processes to die. \fBkillall\fP checks once per second if
any of the killed processes still exist and only returns if none are left.
Note that \fBkillall\fP may wait forever if the signal was ignored, had no
effect, or if the process stays in zombie state.
.IP "\fB\-y\fP, \fB\-\-younger\-than\fP"
Match only processes that are older (started after) the time specified.
The time is specified as a float then a unit. The units are s,m,h,d,w,M,y for
seconds, minutes, hours, days, weeks, Months and years respectively.
.IP "\fB\-Z\fP, \fB\-\-context\fP"
(SELinux Only) Specify security context: kill only processes having security 
context that match with given expended regular expression pattern. Must precede 
other arguments on the command line. Command names are optional.
.SH FILES
.nf
/proc	location of the proc file system
.fi
.SH "KNOWN BUGS"
Killing by file only works for executables that are kept open during
execution, i.e. impure executables can't be killed this way.
.PP
Be warned that typing \fBkillall\fP \fIname\fP may not have the desired
effect on non-Linux systems, especially when done by a privileged
user.
.PP
\fBkillall \-w\fP doesn't detect if a process disappears and is replaced by
a new process with the same PID between scans.
.PP
If processes change their name, \fBkillall\fP may not be able to match 
them correctly.
.SH AUTHORS
Werner Almesberger <werner@almesberger.net> wrote the original version
of psmisc. Since version 20 Craig Small <csmall@small.dropbear.id.au>
can be blamed.
.SH "SEE ALSO"
.BR kill "(1), " fuser "(1), " pgrep "(1), " pidof "(1), " pkill "(1), "
.BR ps "(1), " kill (2).
.\"{{{}}}
